package com.geniusk.security.core;

import cn.hutool.core.util.IdUtil;
import lombok.Data;

import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 登陆用户
 */
@Data
public class LoginUser {

    /**
     * 身份ID标识
     */
    private Long identityId = IdUtil.getSnowflake().nextId();;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 组织ID
     */
    private Long groupId;

    /**
     * 用户账号
     */
    private String username;

    /**
     * 用户昵称
     */
    private String nickname;

    /**
     * 姓名
     */
    private String name;

    /**
     * 登陆来源
     */
    private int loginSource;

    /**
     * 是否是超级管理员
     */
    private Boolean isRoot;

    /**
     * 数据权限列表
     */
    private List<DataPermission> dataPermissions;

    /**
     * 功能权限列表
     */
    private Set<String> funcPermissions;

    /**
     * 登录时间
     */
    private Date loginTime;

    /**
     * 过期时间
     */
    private Date expireTime;

    /**
     * 登录IP地址
     */
    private String ipAddr;

    /**
     * 登录地点
     */
    private String loginLocation;

    /**
     * 浏览器类型
     */
    private String browser;

    /**
     * 浏览器版本号
     */
    private String version;

    /**
     * 操作系统
     */
    private String os;

    public LoginUser(){

    }

    public LoginUser(Set<String> funcPermissions){
        this.funcPermissions = funcPermissions;
    }

}